Elasticsearch ব্যবহার করে একটি Simple Search Application তৈরি করা

Latest Technologies - ইলাস্টিকসার্চ (ElasticSearch) - প্র্যাকটিস প্রোজেক্টস | NCTB BOOK

Elasticsearch ব্যবহার করে একটি Simple Search Application তৈরি করা একটি চমৎকার এবং কার্যকরী উপায় লগ ডেটা বা অন্য কোনো ডেটা সহজে সার্চ এবং রিট্রিভ করার জন্য। নিচে একটি বেসিক স্টেপ-বাই-স্টেপ গাইড দেওয়া হলো, যা অনুসরণ করে আপনি সহজেই একটি সার্চ অ্যাপ্লিকেশন তৈরি করতে পারবেন। এই অ্যাপ্লিকেশনটি Python এবং Flask ব্যবহার করে তৈরি করা হবে।

প্রয়োজনীয় টুলস এবং টেকনোলজি

  1. Elasticsearch: সার্চ এবং ডেটা স্টোরেজ ইঞ্জিন।
  2. Python: অ্যাপ্লিকেশন তৈরি করার জন্য প্রোগ্রামিং ল্যাঙ্গুয়েজ।
  3. Flask: একটি মাইক্রো-ওয়েব ফ্রেমওয়ার্ক, যা API তৈরি করতে ব্যবহার করা হবে।
  4. Elasticsearch Python Client (elasticsearch-py): Elasticsearch-এর সাথে সংযোগ করার জন্য Python-এর অফিসিয়াল ক্লায়েন্ট।

স্টেপ ১: Elasticsearch সেটআপ

Elasticsearch সেটআপ করার জন্য:

  1. Elasticsearch ইন্সটল করুন (Docker ব্যবহার করতে পারেন বা লোকালি ইন্সটল করতে পারেন)।
  2. Elasticsearch সার্ভার চালু করুন। ডিফল্টভাবে এটি http://localhost:9200 এ চলে।

স্টেপ ২: Python এবং Flask সেটআপ

Python এবং Flask ইন্সটল করার জন্য:

  1. Python ইন্সটল করুন (যদি আগে থেকে না থাকে)।
  2. প্রয়োজনীয় লাইব্রেরি ইন্সটল করুন:
pip install flask elasticsearch

স্টেপ ৩: ডেটা ইনডেক্স করা

Elasticsearch-এ ডেটা ইনডেক্স করতে একটি Python স্ক্রিপ্ট তৈরি করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো:

from elasticsearch import Elasticsearch

# Elasticsearch সার্ভার কানেক্ট করা
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])

# ইনডেক্স এবং ডকুমেন্ট তৈরি করা
def index_data():
    data = [
        {"title": "Elasticsearch Tutorial", "content": "Learn Elasticsearch step by step"},
        {"title": "Flask API Development", "content": "Building APIs using Flask and Python"},
        {"title": "Python Programming", "content": "Python programming basics and advanced concepts"}
    ]

    for i, doc in enumerate(data):
        es.index(index="articles", id=i, body=doc)

if __name__ == "__main__":
    index_data()
  • Elasticsearch কানেক্ট করা: Elasticsearch ক্লায়েন্ট ব্যবহার করে সার্ভারে কানেক্ট করা হয়েছে।
  • ডেটা ইনডেক্স করা: index_data ফাংশন বিভিন্ন ডকুমেন্ট ইনডেক্স করেছে articles নামে একটি ইনডেক্সে। ইনডেক্সের প্রতিটি ডকুমেন্টে দুটি ফিল্ড আছে: title এবং content

স্টেপ ৪: Flask অ্যাপ্লিকেশন তৈরি করা

এবার Flask ব্যবহার করে একটি সার্চ API তৈরি করা হবে, যা Elasticsearch থেকে ডেটা সার্চ করতে সাহায্য করবে।

from flask import Flask, request, jsonify
from elasticsearch import Elasticsearch

app = Flask(__name__)
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])

# সার্চ API তৈরি করা
@app.route('/search', methods=['GET'])
def search():
    query = request.args.get('q')
    if not query:
        return jsonify({"error": "Query parameter 'q' is required"}), 400

    # Elasticsearch কিউরি
    response = es.search(index="articles", body={
        "query": {
            "multi_match": {
                "query": query,
                "fields": ["title", "content"]
            }
        }
    })

    # সার্চ রেজাল্ট রিটার্ন করা
    results = []
    for hit in response['hits']['hits']:
        results.append(hit["_source"])

    return jsonify(results)

if __name__ == '__main__':
    app.run(debug=True)
  • Flask সেটআপ: Flask-এর মাধ্যমে একটি API সেটআপ করা হয়েছে যা /search এ সার্চ কিউরি গ্রহণ করে।
  • Elasticsearch কিউরি: multi_match কিউরি ব্যবহার করে title এবং content ফিল্ডে কিউরি চালানো হয়েছে।
  • রেজাল্ট রিটার্ন করা: কিউরি রেজাল্ট JSON ফরম্যাটে রিটার্ন করা হয়েছে।

স্টেপ ৫: Flask অ্যাপ্লিকেশন চালানো

Flask অ্যাপ্লিকেশন চালানোর জন্য নিচের কমান্ড ব্যবহার করুন:

python app.py

এবার আপনার সার্চ API চলবে http://localhost:5000 এ। আপনি এখন সার্চ করতে পারেন:

http://localhost:5000/search?q=Python

এটি "Python" টার্ম দিয়ে সার্চ করবে এবং Elasticsearch ইনডেক্সে থাকা সব ডকুমেন্ট রিটার্ন করবে যা "Python" টার্মটির সাথে মিলে।

উপসংহার

এই Simple Search Application Elasticsearch এবং Flask ব্যবহার করে তৈরি করা হয়েছে। এটি একটি বেসিক উদাহরণ, যা ব্যবহার করে আপনি আরও জটিল অ্যাপ্লিকেশন তৈরি করতে পারেন। অ্যাপ্লিকেশনটিতে আরও ফিচার যোগ করতে পারেন, যেমন পেজিনেশন, অ্যাডভান্সড সার্চ অপশন, এবং Kibana দিয়ে ভিজ্যুয়ালাইজেশন ইন্টিগ্রেশন।

Content added By
Promotion